It is increasingly common to exchange digital data, such as for instance digital documents and forms, via a communications network. More specifically, digital data is exchanged for purposes relating to commerce, (i.e. on-line shopping and on-line banking, etc.), upgrading or updating firmware or software of computers or other electronic devices, and communicating (i.e. e-mail). Typically, the communications network is not secure and so it is necessary to use some form of encryption or a digital signature, or a combination of these, in order to reduce the risk of private and/or confidential information being intercepted by a party other than the intended recipient. Most often, the communications network is the Internet.
Encryption and digital signing processes both involve encoding digital data in some way using a secure electronic key, otherwise known as a cryptographic key or a cryptokey. Prior to transmitting the digital data via the communications network, a sender uses a secure electronic key to digitally sign and/or encrypt the digital data. The encoded digital data is then transmitted via the communications network, and is received by a recipient. The recipient subsequently uses a cryptographic key to verify the digital signature of the sender and/or decrypt the encrypted digital data. Different types of cryptography schemes are known, including symmetric and asymmetric schemes. In a symmetric cryptography scheme the sender and the recipient are both in possession of identical secure electronic keys, whereas asymmetric cryptography schemes make use of private/public key pairs.
A digital signature or digital signature scheme is typically a type of asymmetric cryptography, which is used to simulate the security properties of a handwritten signature on paper. Digital signatures mainly provide authentication of a “message”. In practice, however, this type of signature is not used directly, but rather the message to be signed is first hashed to produce a short digest that is then signed. Accordingly, when it is desired to digitally sign a message for transmission via a communications network a one-way mathematical process is performed on the digital data that comprises the message, in order to generate the digest. The generated digest can be verified to be from the digital data that comprises the message, and typically it is a small amount of data relative to the original data to which it relates. The sender then digitally signs the digest using a secure electronic key, and the digitally signed digest is transmitted along with the message to a recipient. Upon receiving the digitally signed message, the recipient uses a signature verifying process, which given a message, a public key and a signature, either accepts the signature as being authentic or rejects the signature. In general, a digital signature scheme must satisfy two main criteria. First, a digital signature that is generated from a fixed message and fixed private key must verify on that message and the corresponding public key. Secondly, it must be computationally infeasible for a party who does not possess the private key to generate a valid signature reliably within a short time frame.
When using symmetric cryptokeys—a same key for encrypting and decrypting of data, digital signatures function similarly though the verification of the signature is only performable by systems having or having access to the symmetric cryptokey. For example, when a same organization wants to verify communications between different offices, each office is provided with a copy of a same cryptokey and symmetric encryption processes are then usable therebetween for ciphering or for digitally signing of data.
A problem arises when the private key is compromised. For instance, the private key is compromised when an unauthorized party obtains access to or knowledge of the private key. In this scenario, the unauthorized party may decrypt a message that is intended for the recipient and/or may use the compromised private key to digitally sign electronic documents. Accordingly, when the private key is compromised it becomes necessary to generate a new private/public key pair and to remove the compromised key from use such that documents digitally signed with the compromised key are no longer accepted. A simple way to do this is to expire the compromised key and then to require physical attendance at a secured location to receive a new key. In another example, this is done using a master key, which is used only to communicate new keys and is not used for encoding other data for transmission via the communications network. Unfortunately, in the unlikely event that the master key is compromised then all security devices that are associated with that master key become worthless. In particular, the compromised master key can continue to be used by an unauthorized entity to generate valid keys that are not authorized for exchanging data between such devices. For this reason, master keys are protected typically using tamper resistant modules and/or secure physical storage. The high level of security that is necessary to prevent the master key from being compromised also limits the ability of an authorized user to utilize the master key at different geographic locations, since security must be provided to transfer the key from place to place and the destination system must be secure and adapted to interface with the master key module.
A number of variations of the basic digital signature scheme are known. For instance, two or more different sending entities may each digitally sign the same digital data in the fashion that is outlined above. However, in this case each entity merely uses their own private key to sign a digest of the same digital data. This is analogous to each sending entity applying their own handwritten signature to a paper document, as evidence that each sending entity assents to the contents of the message that is being transmitted. If the secure electronic key of one of the sending entities is compromised, then it may continue to be used by an unauthorized party in order to fraudulently sign messages as originating from that sending entity. If both sending entities are required to sign every message prior to the message being transmitted then the effects of one of the keys being compromised may be quite limited. However, in the event that one of the sending entities obtains the secure electronic key of the other sending entity, then that sending entity becomes able to apply both of the required digital signatures to any message they wish. Furthermore, an unauthorized party that is in possession of a compromised key associated with one of the sending entities may digitally sign any message requiring only that sending entity's digital signature or cosign messages that the other entity has already signed. This is particularly problematic when the cryptokey is compromised by the other cosigner. Of course, it is still necessary to use physical security to replace the compromised key.
There is a need for a method and system that overcomes at least some of the disadvantages of the prior art.